
/*#######################################################################################################################################################*/
/*################################################### OPERACIONES CON LOTES ENTREGA #####################################################################*/
/*#######################################################################################################################################################*/

// Llenar el EAN al seleccionar un producto en el formulario modal de seleccionar lote
function llenarEANselectorLote(idProductoLote){
	
	$.get("albaranEntrega/backend.php?action=llenarEANlote&EANproductoLote="+idProductoLote,$("#form_producto").serialize(),function(data){
		
		$("#eanProductoLote").val(data);
		
	});
	
}


// Comprueba cada vez que se introduce un numero en el campo EAN del formulario de selección de productos con lote que si existe un producto con ese EAN carge los datos del producto en ese mismo formulario
function comprobarEANlote() {
	
 	var numeroCaracteres = document.getElementById("eanProductoLote").value.length;
 	
 	// Numero de caracteres mínimo para ser EAN
	if(numeroCaracteres == 13)
	{
		cargarProductoLote();
	}else{
			document.getElementById("selectorProductoLote").value = "";
			document.getElementById("valorProducto").value = "";
		}
	
}

// Introduce los datos del producto con ese EAN en el formulario 'seleccionadorProducto'
function cargarProductoLote(){

	var eanLote = $("#eanProductoLote").val();
	
	$.get("albaranEntrega/backend.php?action=obtenerProductoLote&eanLote="+eanLote,$("#form_producto").serialize(),function(data){
	
		var elementos=Array();
		elementos=data.split("-");
		$("#valorProducto").val(elementos[0]);
		$("#selectorProductoLote").val(elementos[1]);
		
	});

}

// Modifica la cantidad de las unidades del lote
function modificarCantidadLote(indice){
	
	var newUnd = $("#unidadesLote_"+indice).val();
	var expMod = $("#expedicion").val();
	
	$.get("albaranEntrega/backend.php?action=modificarCantidadLote&indiceCantidad="+indice+"&newUnd="+newUnd+"&expMod="+expMod,$("#formularioEntrega").serialize(),function(data){
	
		switch(data) {
			
				case 'sacar':
				
					document.getElementById('contenedor').innerHTML ="<font color='red'><b>La cantidad especificada sobrepasa el l&iacute;mite de existencias</b></font>";
			
				break;
		}
	});
		
}

// Borra el lote
function borrarLote(indice){
		
		var und = $("#unidadesLote_"+indice).val();
		$("#lineaLote_"+indice).hide("slow");
		setTimeout(function(){$("#lineaLote_"+indice).remove();},1500);	
		var expBr = $("#expedicion").val();
		
		$.get("albaranEntrega/backend.php?action=borrarLote&indiceLote="+indice+"&und="+und+"&expBr="+expBr,$("#formularioEntrega").serialize(),function(data){
		});

}

// Inserta los fieldsets con los datos del los lotes seleccionados
function insertarLoteFormulario(){

	var nLineas = document.getElementById("tabla_listado_lote").getElementsByTagName("tr").length;
		
	for (var i = 0; i < nLineas; i++)
	{
		
		if ($("#sacar_"+i).val().replace(",",".") > 0)
		{
			document.getElementById("listadoLotesAlbaran").innerHTML = document.getElementById("listadoLotesAlbaran").innerHTML + '<tr id="lineaLote_'+$("#nLote_"+i).val()+'"><td><fieldset style="height:135px; width: 738px;" class="cabecera_agenda_finde"><legend>Datos Lote '+$("#lote_"+i).val()+'</legend><form><center><table style="width: 738px;"><tr><td><center><label>N&#176; Lote</label></center></td><td><center><label>Fecha Caducidad</label></center></td><td><center><label>Distribuidor</label></center></td></tr><tr><td><center><input readonly="readonly" type="text" class="autocompletar" value="'+$("#nLote_"+i).val()+'" id="input_n_lote_'+$("#nLote_"+i).val()+'" name="n_lote" maxlength="18" onkeypress="return comprobar_solonumeros(event);"></center></td><td><center><input disabled="true" value="'+$("#fechaCaducidad_"+i).val()+'" type="text" class="autocompletar" id="fechaLote" name="fechaLote"></center></td><td><center><input disabled="true" type="text" value="'+$("#idDistribuidor_"+i).val()+'" id="distribuidor_'+$("#nLote_"+i).val()+'" class="autocompletar"> </center></td></tr><tr></tr><tr class="titulo_inicio"><td colspan="3"><center><label style="margin-left: 150px;">Producto</label><label style="margin-left: 165px;">Cajas</label></center></td></tr><tr><td colspan="3"><center><input disabled="true" type="text"  value="'+$("#lote_"+i).val()+'" id="productoLote_'+$("#nLote_"+i).val()+'" name="productoLote" class="autocompletar" style="width:360px;">&nbsp;<input type="text" value="'+$("#sacar_"+i).val()+'" id="unidadesLote_'+$("#nLote_"+i).val()+'" name="unidadesLote" class="autocompletar" style="width:70px;" onchange="modificarCantidadLote('+$("#nLote_"+i).val()+');" onkeypress="return comprobar_solonumeros(event);"></center></td></tr><tr><td></td><td style="width: 405px;text-align:center;"><div id="mensajeLineasLote_'+$("#nLote_"+i).val()+'" name="mensajeLineasLote_'+$("#nLote_"+i).val()+'"></div></td><td style="text-align:right;"> <img id="deleteImg_'+$("#nLote_"+i).val()+'" name="deleteImg_0" src="./albaranEntrega/icon/icon-trash.png" style="width: 24px; height: 21px; border-top-width: 0px; margin-top: 0px;" onclick="borrarLote('+$("#nLote_"+i).val()+');"></td></tr></table></center></form></fieldset></td></tr>';	
		} // FIN DE CONDICION SE HAY SACAR
	} // FIN FOR DE I 

} // FIN FUNCION

// Llama al formulario que muestra los los lotes del producto seleccionado
function listadoLotesDeProducto(){
	
	var idProducto = $("#valorProducto").val(); // Guardo el id del producto seleccionado
	
	if (idProducto == "")
	{
	
		document.getElementById('contenedor_lote_selector').innerHTML ="<font color='red'><b>Seleccione un producto</b></font>";
		
	}else{
	
			volver(); // Cierro el formulario anterior

			$.get("albaranEntrega/backend.php?action=form_lote&vProd="+idProducto, $("#form_datos").serialize(), function(data){
			
				//crear_modal(670,418,data);
				crear_modal_redimensionable(697,650,data);
			});
			
		}

}

// Inserta los lotes
function InsertarLotes() {
	
	var nLineas = document.getElementById("tabla_listado_lote").getElementsByTagName("tr").length;
	var exp = $("#expedicion").val();
	
 	$.post("albaranEntrega/backend.php?action=InsertarLotes&nLineas="+nLineas+"&expAl="+exp, $("#form_datos").serialize(), function(data){
				
			switch(data) {
				
				case 'enAlbaran' :
				
					document.getElementById('contenedor_lote').innerHTML ="<font color='red'><b>Ya existe un lote con este numero de lote en albaran</b></font>";
					
				break;
				
				case 'sacar':
				
					document.getElementById('contenedor_lote').innerHTML ="<font color='red'><b>La cantidad especificada sobrepasa el l&iacute;mite de existencias</b></font>";
			
				break;
				
				case 'OK':

					insertarLoteFormulario();
					volver();

				break;
							
			}
				
	});
	
}

// Suma visual del numero de cajas seleccionadas del listado de lotes
function sumarTotal(){

	var nLineas = document.getElementById("tabla_listado_lote").getElementsByTagName("tr").length;
	var total = 0;
	
	for (var i = 0; i < nLineas; i++)
	{
		total = total + parseFloat($("#sacar_"+i).val().replace(",","."));
	}
	
	$("#total").val(total);

}

// Llama al formulario en que seleccionamos el producto del cual queremos que se nos muestren los lotes
function llamarFormularioLote(){	

	$.get("albaranEntrega/backend.php?action=seleccionadorProducto", $("#form_producto").serialize(), function(data){
		
			crear_modal(605,140,data);

	});
	return false;
	
}

// Pone a "0" en los campos sacar del formulario que muestra los lotes del producto seleccionado
function comprobarBlancos()
{
	var nLineas = document.getElementById("tabla_listado_lote").getElementsByTagName("tr").length;
	
	for (var i = 0; i < nLineas; i++)
	{
		
		if($("#sacar_"+i).val() == "") 
		{
			$("#sacar_"+i).val(0);
		}
	}
	
}



/*#######################################################################################################################################################*/
/*################################################### FIN DE OPERACIONES CON LOTES ENTREGA ##############################################################*/
/*#######################################################################################################################################################*/

function opcionesAceptar(accion){
	
	if(accion == "modificar")
		{
			
			// Numero de lineas insetadas tando de lotes como de lineas normales de producto
			var nLineasLote = document.getElementById("listadoLotesAlbaran").getElementsByTagName("tr").length;
			var nLineasProducto = document.getElementById("tabla_lineas_formulario").getElementsByTagName("tr").length;
				
			if(nLineasLote == 0 && nLineasProducto == 1 && document.getElementById("expedicion").value != 0 && document.getElementById("cliente").value != 0 && document.getElementById("campo_fecha").value != "")
			{
					
				if(confirm("El albarán esta vacío y será eliminado"))
				{
					var exp = document.getElementById("expedicion").value;
					//Borro albaran
					borrarAlbaran(exp, accion);
				}
				
			}else{
					volver_atras();				
				}
			
		}
	
}
//Hace la llamada y el borrado del albaran y sus datos correspondientes
function borrarAlbaran(exp, accion){

	expedicion = exp.toString();
	$.get("albaranEntrega/backend.php?action=borrarAlbaranVacio&numeroExpedicionAlbaran="+expedicion,$("#formularioEntrega").serialize(),function(data){
			switch(data){
				
				case 'BORRADO':
				
					if (accion == "modificar")
					{
						volver_atras();
					}else{
							setTimeout(function(){window.location = "http://www.synapse.es/transporte/intranet/fcontenido.php?modulo=inventario";},1000);
						}
					
				break;
			
			}
	});

}

// Funciones javascript
function restarLimite(){
	
	var limite = 499;
	var n = document.getElementById("observaciones").value.length;
	document.getElementById("maxCaracteres").innerHTML = (limite +1) - n;
} 

// Funcion para insertar las observaciones del albaran
function insertarObservaciones(){

	var ob = $("#observaciones").val();
	var tipoAlbaran=$("#tipoAlbaran").val();
		
	if(tipoAlbaran=="Entrega"){	
		$.post("albaranEntrega/backend.php?action=insertarObservaciones&obvs="+ob,$("#formularioEntrega").serialize(),function(data){			
		});
	}
	else{
		$.post("albaranRecogida/backend.php?action=insertarObservaciones&obvs="+ob+"&expedicionObservaciones="+$("#expedicion").val(),$("#formularioRecogida").serialize(),function(data){			
		});
	}
	
}

function guardar(action){

	var tipoAlbaran=$("#tipoAlbaran").val();
		
	if(tipoAlbaran=="Entrega"){	

		$.get("albaranEntrega/backend.php?action="+action,$("#formularioEntrega").serialize(), function(data){

				switch(data){
				
					case 'expedicion':
						document.getElementById('contenedor').innerHTML ="<font color='red'><b>Debe introducir un n&uacute;mero de expedici&oacute;n positivo y distinto de cero</b></font>";
						
						//Borramos la segunda linea
						$("#linea_insercion_1").remove();
						//Activamos los elementos de la primera linea
						document.getElementById("linea_insercion_0").getElementsByTagName("input").item(1).disabled=false;
						document.getElementById("linea_insercion_0").getElementsByTagName("input").item(2).disabled=false;
						document.getElementById("linea_insercion_0").getElementsByTagName("input").item(5).disabled=false;
						//Volvemos a llamar a la funcion de autocompletar
						$.get("albaranEntrega/backend.php?action=reAutocompletar&prd=0",$("#formularioEntrega").serialize(),function(data){
								$("#scriptAutocomplete").html(data);
						});		
						//Ponemos en blanco todos sus campos
						$("#ean_0").val("");
						$("#producto_0").val("");
						$("#unidades_0").val("");
						$("#palet_0").val("");
						$("#stock_0").val("");
						$("#undxcaja_0").val("");
						
					break;
					
					case 'expedicion_usada':
						document.getElementById('contenedor').innerHTML ="<font color='red'><b>Este n&uacute;mero de expedici&oacute;n ya est&aacute; reservado, pruebe con otro n&uacute;mero</b></font>";
						
						//Borramos la segunda linea
						$("#linea_insercion_1").remove();
						//Activamos los elementos de la primera linea
						document.getElementById("linea_insercion_0").getElementsByTagName("input").item(1).disabled=false;
						document.getElementById("linea_insercion_0").getElementsByTagName("input").item(2).disabled=false;
						document.getElementById("linea_insercion_0").getElementsByTagName("input").item(5).disabled=false;
						//Volvemos a llamar a la funcion de autocompletar
						$.get("albaranEntrega/backend.php?action=reAutocompletar&prd=0",$("#formularioEntrega").serialize(),function(data){
								$("#scriptAutocomplete").html(data);
						});		
						//Ponemos en blanco todos sus campos
						$("#ean_0").val("");
						$("#producto_0").val("");
						$("#unidades_0").val("");
						$("#palet_0").val("");
						$("#stock_0").val("");
						$("#undxcaja_0").val("");
						
					break;
					
					case 'fecha':
						document.getElementById('contenedor').innerHTML ="<font color='red'><b>Introduzca una fecha v&aacute;lida</b></font>";
						
						//Borramos la segunda linea
						$("#linea_insercion_1").remove();
						//Activamos los elementos de la primera linea
						document.getElementById("linea_insercion_0").getElementsByTagName("input").item(1).disabled=false;
						document.getElementById("linea_insercion_0").getElementsByTagName("input").item(2).disabled=false;
						document.getElementById("linea_insercion_0").getElementsByTagName("input").item(5).disabled=false;
						//Volvemos a llamar a la funcion de autocompletar
						$.get("albaranEntrega/backend.php?action=reAutocompletar&prd=0",$("#formularioEntrega").serialize(),function(data){
								$("#scriptAutocomplete").html(data);
						});		
						//Ponemos en blanco todos sus campos
						$("#ean_0").val("");
						$("#producto_0").val("");
						$("#unidades_0").val("");
						$("#palet_0").val("");
						$("#stock_0").val("");
						$("#undxcaja_0").val("");
						
					break;
					
					case 'cliente':
						document.getElementById('contenedor').innerHTML ="<font color='red'><b>Seleccione un cliente</b></font>";
						
						//Borramos la segunda linea
						$("#linea_insercion_1").remove();
						//Activamos los elementos de la primera linea
						document.getElementById("linea_insercion_0").getElementsByTagName("input").item(1).disabled=false;
						document.getElementById("linea_insercion_0").getElementsByTagName("input").item(2).disabled=false;
						document.getElementById("linea_insercion_0").getElementsByTagName("input").item(5).disabled=false;
						//Volvemos a llamar a la funcion de autocompletar
						$.get("albaranEntrega/backend.php?action=reAutocompletar&prd=0",$("#formularioEntrega").serialize(),function(data){
								$("#scriptAutocomplete").html(data);
						});		
						//Ponemos en blanco todos sus campos
						$("#ean_0").val("");
						$("#producto_0").val("");
						$("#unidades_0").val("");
						$("#palet_0").val("");
						$("#stock_0").html(" ");
						$("#stock_0").val("");
						$("#undxcaja_0").val("");
						
					break;
						
					case 'producto': //Muestra el error si el producto nos es valido
						document.getElementById('contenedor').innerHTML ="<font color='red'><b>Introduzca un producto v&aacute;lido</b></font>";
						setTimeout(function(){document.getElementById('contenedor').innerHTML =""},5000);
					break;
					
					case 'unidades': //Muestra el error si el campo de las unidades esta vacio											
						document.getElementById('contenedor').innerHTML ="<font color='red'><b>Un producto no tiene especificado un n&uacute;mero positivo de unidades</b></font>";		
						setTimeout(function(){document.getElementById('contenedor').innerHTML =""},5000);			
					break;
					
					case 'agotado':	//Muestra el error si el campo de las unidades sobrepasa la cantidad que hay en el stock										
						document.getElementById('contenedor').innerHTML ="<font color='red'><b>La cantidad especificada sobrepasa el l&iacute;mite de existencias</b></font>";		
						setTimeout(function(){document.getElementById('contenedor').innerHTML =""},5000);			
					break;
								
					case 'OK':	//Por aqui pasa si esta todo correcto					
						$('#jqgrid_list').css('display','');
						$('#formulario').html('');
						$('#formulario').css('display','none');
						$("#list").trigger("reloadGrid");
					break;
					
					default:
						$("#id_expedicion").val(data);
					break;															
				}	
		});
	}else{
		$.get("albaranRecogida/backend.php?action="+action,$("#formularioRecogida").serialize(), function(data){

				switch(data){
				
					case 'expedicion':
						document.getElementById('contenedor').innerHTML ="<font color='red'><b>Debe introducir un n&uacute;mero de expedici&oacute;n positivo y distinto de cero</b></font>";
						
						//Borramos la segunda linea
						$("#linea_insercion_1").remove();
						//Activamos los elementos de la primera linea
						document.getElementById("linea_insercion_0").getElementsByTagName("input").item(1).disabled=false;
						document.getElementById("linea_insercion_0").getElementsByTagName("input").item(2).disabled=false;
						document.getElementById("linea_insercion_0").getElementsByTagName("input").item(5).disabled=false;
						//Volvemos a llamar a la funcion de autocompletar
						$.get("albaranRecogida/backend.php?action=reAutocompletar&prd=0",$("#formularioRecogida").serialize(),function(data){
								$("#scriptAutocomplete").html(data);
						});		
						//Ponemos en blanco todos sus campos
						$("#ean_0").val("");
						$("#producto_0").val("");
						$("#unidades_0").val("");
						$("#palet_0").val("");
						$("#stock_0").val("");
						$("#undxcaja_0").val("");					
					break;
					
					case 'expedicion_usada':
						document.getElementById('contenedor').innerHTML ="<font color='red'><b>Este n&uacute;mero de expedici&oacute;n ya est&aacute; reservado, pruebe con otro n&uacute;mero</b></font>";
												
						//Borramos la segunda linea
						$("#linea_insercion_1").remove();
						//Activamos los elementos de la primera linea
						document.getElementById("linea_insercion_0").getElementsByTagName("input").item(1).disabled=false;
						document.getElementById("linea_insercion_0").getElementsByTagName("input").item(2).disabled=false;
						document.getElementById("linea_insercion_0").getElementsByTagName("input").item(5).disabled=false;
						//Volvemos a llamar a la funcion de autocompletar
						$.get("albaranRecogida/backend.php?action=reAutocompletar&prd=0",$("#formularioRecogida").serialize(),function(data){
								$("#scriptAutocomplete").html(data);
						});		
						//Ponemos en blanco todos sus campos
						$("#ean_0").val("");
						$("#producto_0").val("");
						$("#unidades_0").val("");
						$("#palet_0").val("");
						$("#stock_0").val("");
						$("#undxcaja_0").val("");
					break;
					
					case 'fecha':
						document.getElementById('contenedor').innerHTML ="<font color='red'><b>Introduzca una fecha v&aacute;lida</b></font>";
												
						//Borramos la segunda linea
						$("#linea_insercion_1").remove();
						//Activamos los elementos de la primera linea
						document.getElementById("linea_insercion_0").getElementsByTagName("input").item(1).disabled=false;
						document.getElementById("linea_insercion_0").getElementsByTagName("input").item(2).disabled=false;
						document.getElementById("linea_insercion_0").getElementsByTagName("input").item(5).disabled=false;
						//Volvemos a llamar a la funcion de autocompletar
						$.get("albaranRecogida/backend.php?action=reAutocompletar&prd=0",$("#formularioRecogida").serialize(),function(data){
								$("#scriptAutocomplete").html(data);
						});		
						//Ponemos en blanco todos sus campos
						$("#ean_0").val("");
						$("#producto_0").val("");
						$("#unidades_0").val("");
						$("#palet_0").val("");
						$("#stock_0").val("");
						$("#undxcaja_0").val("");
					break;
					
					case 'distribuidor':
						document.getElementById('contenedor').innerHTML ="<font color='red'><b>Seleccione un distribuidor</b></font>";
												
						//Borramos la segunda linea
						$("#linea_insercion_1").remove();
						//Activamos los elementos de la primera linea
						document.getElementById("linea_insercion_0").getElementsByTagName("input").item(1).disabled=false;
						document.getElementById("linea_insercion_0").getElementsByTagName("input").item(2).disabled=false;
						document.getElementById("linea_insercion_0").getElementsByTagName("input").item(5).disabled=false;
						//Volvemos a llamar a la funcion de autocompletar
						$.get("albaranRecogida/backend.php?action=reAutocompletar&prd=0",$("#formularioRecogida").serialize(),function(data){
								$("#scriptAutocomplete").html(data);
						});		
						//Ponemos en blanco todos sus campos
						$("#ean_0").val("");
						$("#producto_0").val("");
						$("#unidades_0").val("");
						$("#palet_0").val("");
						$("#stock_0").val("");
						$("#undxcaja_0").val("");
					break;
					
					case 'producto': //Muestra el error si el producto nos es valido
						document.getElementById('contenedor').innerHTML ="<font color='red'><b>Introduzca un producto v&aacute;lido</b></font>";
						setTimeout(function(){document.getElementById('contenedor').innerHTML =""},5000);
					break;
					
					case 'unidades': //Muestra el error si el campo de las unidades esta vacio												
						document.getElementById('contenedor').innerHTML ="<font color='red'><b>Un producto no tiene especificado un n&uacute;mero positivo de unidades</b></font>";	
						setTimeout(function(){document.getElementById('contenedor').innerHTML =""},5000);				
					break;
					
					case 'agotado':	 //Muestra el error si el campo de las unidades sobrepasa la cantidad que hay en el stock										
						document.getElementById('contenedor').innerHTML ="<font color='red'><b>La cantidad especificada sobrepasa el l&iacute;mite de existencias</b></font>";	
						setTimeout(function(){document.getElementById('contenedor').innerHTML =""},5000);				
					break;
											
					case 'OK':		//Por aqui pasa si esta todo correcto				
						$('#jqgrid_list').css('display','');
						$('#formulario').html('');
						$('#formulario').css('display','none');
						$("#list").trigger("reloadGrid");				
						break;
					default:
						$("#id_expedicion").val(data);
					break;														
				}	
		});
	}
}

function guardarConIndice(action,indice){

	var tipoAlbaran=$("#tipoAlbaran").val();
		
	if(tipoAlbaran=="Entrega"){	
	
	$.get("albaranEntrega/backend.php?action="+action+"&indice="+indice,$("#formularioEntrega").serialize(), function(data){

				switch(data){
				
					case 'expedicion'://Muestra el error cuando el campo de n_expedicion esta vacio o es negativo o 0
						document.getElementById('contenedor').innerHTML ="<font color='red'><b>Debe introducir un n&uacute;mero de expedici&oacute;n positivo y distinto de cero</b></font>";
						setTimeout(function(){document.getElementById('contenedor').innerHTML =""},5000);
					break;
					
					case 'expedicion_usada': //Muestra este error cuando el n_expedicion esta ocupado ya
						document.getElementById('contenedor').innerHTML ="<font color='red'><b>Este n&uacute;mero de expedici&oacute;n ya est&aacute; reservado, pruebe con otro n&uacute;mero</b></font>";
						setTimeout(function(){document.getElementById('contenedor').innerHTML =""},5000);
					break;
					
					case 'fecha'://Muestra el error cuando la fecha no esta seleccionada
						document.getElementById('contenedor').innerHTML ="<font color='red'><b>Introduzca una fecha v&aacute;lida</b></font>";
						setTimeout(function(){document.getElementById('contenedor').innerHTML =""},5000);
					break;
					
					case 'cliente': //Muestra este error cuando el cliente no esta seleccionado
						document.getElementById('contenedor').innerHTML ="<font color='red'><b>Seleccione un cliente</b></font>";
						setTimeout(function(){document.getElementById('contenedor').innerHTML =""},5000);
					break;
					
					case 'producto': //Muestra el error cuando el producto no existe o no es valido
						document.getElementById('contenedor').innerHTML ="<font color='red'><b>Introduzca un producto v&aacute;lido</b></font>";
						setTimeout(function(){document.getElementById('contenedor').innerHTML =""},5000);
					break;
					
					case 'unidades': //Muestra el error cuando el producto no tiene especificado una cantidad de unidades											
						document.getElementById('contenedor').innerHTML ="<font color='red'><b>Un producto no tiene especificado un n&uacute;mero positivo de unidades</b></font>";
						setTimeout(function(){document.getElementById('contenedor').innerHTML =""},5000);					
					break;
						case 'agotado':	//Muestra el error cuando se sobrepasa la cantidad de unidades existentes									
						document.getElementById('contenedor').innerHTML ="<font color='red'><b>La cantidad especificada sobrepasa el l&iacute;mite de existencias</b></font>";	
						setTimeout(function(){document.getElementById('contenedor').innerHTML =""},5000);				
					break;					
					case 'OK':						
						$('#jqgrid_list').css('display','');
						$('#formulario').html('');
						$('#formulario').css('display','none');
						$("#list").trigger("reloadGrid");				
					break;														
				}	
	});
	}else{
		$.get("albaranRecogida/backend.php?action="+action+"&indice="+indice,$("#formularioRecogida").serialize(), function(data){

				switch(data){
				
					case 'expedicion'://Muestra el error cuando el campo de n_expedicion esta vacio o es negativo o 0
						document.getElementById('contenedor').innerHTML ="<font color='red'><b>Debe introducir un n&uacute;mero de expedici&oacute;n positivo y distinto de cero</b></font>";
						setTimeout(function(){document.getElementById('contenedor').innerHTML =""},5000);
					break;
					
					case 'expedicion_usada'://Muestra este error cuando el n_expedicion esta ocupado ya
						document.getElementById('contenedor').innerHTML ="<font color='red'><b>Este n&uacute;mero de expedici&oacute;n ya est&aacute; reservado, pruebe con otro n&uacute;mero</b></font>";
						setTimeout(function(){document.getElementById('contenedor').innerHTML =""},5000);
					break;
					
					case 'fecha'://Muestra el error cuando la fecha no esta seleccionada
						document.getElementById('contenedor').innerHTML ="<font color='red'><b>Introduzca una fecha v&aacute;lida</b></font>";
						setTimeout(function(){document.getElementById('contenedor').innerHTML =""},5000);
					break;
					
					case 'distribuidor'://Muestra este error cuando el distribuidor no esta seleccionado
						document.getElementById('contenedor').innerHTML ="<font color='red'><b>Seleccione un distribuidor</b></font>";
						setTimeout(function(){document.getElementById('contenedor').innerHTML =""},5000);
					break;
					
					case 'producto': //Muestra el error cuando el producto no existe o no es valido
						document.getElementById('contenedor').innerHTML ="<font color='red'><b>Introduzca un producto v&aacute;lido</b></font>";
						setTimeout(function(){document.getElementById('contenedor').innerHTML =""},5000);
					break;
					
					case 'unidades'://Muestra el error cuando el producto no tiene especificado una cantidad de unidades											
						document.getElementById('contenedor').innerHTML ="<font color='red'><b>Un producto no tiene especificado un n&uacute;mero positivo de unidades</b></font>";		
						setTimeout(function(){document.getElementById('contenedor').innerHTML =""},5000);			
					break;
					
					case 'agotado':	//Muestra el error cuando se sobrepasa la cantidad de unidades existentes									
						document.getElementById('contenedor').innerHTML ="<font color='red'><b>La cantidad especificada sobrepasa el l&iacute;mite de existencias</b></font>";	
						setTimeout(function(){document.getElementById('contenedor').innerHTML =""},5000);				
					break;
											
					case 'OK':						
						$('#jqgrid_list').css('display','');
						$('#formulario').html('');
						$('#formulario').css('display','none');
						$("#list").trigger("reloadGrid");					
					break;														
				}	
		});
	}
	
}

function numeroLineasInsercion(){// Obtiene el número de lineas de producto en el albarán 
	var tabla=document.getElementById("tabla_lineas_formulario");
	var lineas=tabla.getElementsByTagName("tr");
	return lineas.length;
}
// Inserta otra fila de producto
function addField(tope){
	// Variables
	var accion=$("#accion").val();
	var antiguoID=0;
	var id;
	// Recorre las lineas para obtener el "antiguoID"
	for(var i=0;i<numeroLineasInsercion();i++){
		id=parseInt(document.getElementById("tabla_lineas_formulario").getElementsByTagName("tr").item(i).getAttribute("id").replace("linea_insercion_",""));
		if(id>antiguoID){
			antiguoID=id;
		}
	}
	// Clon de la linea anterior
	var newID=antiguoID+1;
	var newClone = $('#linea_insercion_'+antiguoID).clone(true,true);
	newClone.attr("id",'linea_insercion_'+newID);
	newClone.insertAfter($('#linea_insercion_'+antiguoID));
	// Inserta otra linea de producto con los id cambiados 
	document.getElementById("linea_insercion_"+newID).innerHTML='<tr id="linea_insercion_'+newID+'" name="linea_insercion_'+newID+'"> <input type="hidden" id="idProducto_'+newID+'" name="idProducto_'+newID+'"> <td style="width: 108px;"> <input maxlength="13" type="text" id="ean_'+newID+'" name="ean_'+newID+'" class="autocompletar" onKeyPress="return comprobar_solonumeros_exp(event);" style="width: 105px; height: 22px; padding-top: 0px; padding-bottom: 0px; border-bottom-width: 1px; border-top-width: 1px; margin-top: 0px; padding-left: 0px;" onchange="obtenerProducto('+newID+');"> </td> <td width="755" class="autocompletar" style="width: 315px;"> <input style="width: 365px; height: 22px; padding-left: 0px; padding-top: 0px; padding-bottom: 0px; margin-bottom:0px;" type="text" id="producto_'+newID+'" name="producto_'+newID+'" class="autocompletar" > </td> <td style="width: 65px;" align="center" class="autocompletar"><input type="text" class="autocompletar" disabled="true" style="text-align:center; height: 22px; padding-left: 0px; width:62px; padding-top: 0px; padding-bottom: 0px;" id="undxcaja_'+newID+'" title="Unidades x Caja" /> </td> <td style="width: 65px;" align="center" class="autocompletar"><input type="text" class="autocompletar" disabled="true" style="text-align:center; padding-top: 0px; padding-bottom: 0px; height: 22px; padding-left: 0px; width:66px;" id="stock_'+newID+'" title="Stock" /> </td> <td style="width: 75px;"> <input style="text-align:center; height: 20px; width:66px;" name="unidades_'+newID+'" type="text" class="autocompletar" id="unidades_'+newID+'" maxlength="5" title="Unidades" onChange="actualizarLinea('+newID+','+tope+','+accion+');" onKeyPress="return comprobar_solonumeros_2(event);" onChange="actualizarLinea('+newID+');"/> <td width="60" class="autocompletar" align="center"><input type="text" class="autocompletar" disabled="true" style="text-align:center; height: 22px; padding-left: 0px; width:66px; padding-top: 0px; padding-bottom: 0px;" id="palet_'+newID+'" title="Palets"/> </td> <td> <img id="deleteImg_'+newID+'" name="deleteImg_'+newID+'" src="./albaranEntrega/icon/icon-trash.png" style="width: 24px; height: 21px; border-top-width: 0px; margin-top: 0px;" onclick="delRow('+newID+');"> <input type="hidden" id="idproducto_'+newID+'"> </td> </tr>';
	// Bloquea las los inputs de stock, unidades x caja y palet
	document.getElementById("linea_insercion_"+antiguoID).getElementsByTagName("input").item(1).disabled=true;
	document.getElementById("linea_insercion_"+antiguoID).getElementsByTagName("input").item(2).disabled=true;
	document.getElementById("linea_insercion_"+antiguoID).getElementsByTagName("input").item(5).disabled=true;
	
	var tipoAlbaran=$("#tipoAlbaran").val();
		
	if(tipoAlbaran=="Entrega"){		
	
		$.get("albaranEntrega/backend.php?action=reAutocompletar&prd="+newID,$("#formularioEntrega").serialize(),function(data){
				$("#scriptAutocomplete").html(data);
		});
		
	}else{
			$.get("albaranRecogida/backend.php?action=reAutocompletar&prd="+newID,$("#formularioRecogida").serialize(),function(data){
				$("#scriptAutocomplete").html(data);
			});	
		}
}
// Obtiene todos los datos del producto con el EAN introducido
function obtenerProducto(indice){
	// EAN
	var ean=$("#ean_"+indice).val();
	var tipoAlbaran=$("#tipoAlbaran").val();
		
	if(tipoAlbaran=="Entrega"){		
		// Llama a la función "obtenerProducto" para obtener todos los datos del producto
		$.get("albaranEntrega/backend.php?action=obtenerProducto&indice="+indice+"&ean="+ean,$("#formularioEntrega").serialize(),function(data){
			// Introduce los datos obtenidos en su sitio
			var elementos=Array();
			elementos=data.split("-");
			pasarID(indice,elementos[0]);
			$("#id_producto").val(elementos[0]);
			$("#idProducto_"+indice).val(elementos[0]);
			$("#producto_"+indice).val(elementos[1]);
			$("#stock_"+indice).val(elementos[2]);	
			$("#undxcaja_"+indice).val(elementos[3]);
		
			if(document.getElementById("unidades_"+indice).value!="" && document.getElementById("producto_"+indice).value!=""){
				addField("");
			}
		});
	}else{
			// Llama a la función "obtenerProducto" para obtener todos los datos del producto
			$.get("albaranRecogida/backend.php?action=obtenerProducto&indice="+indice+"&ean="+ean,$("#formularioRecogida").serialize(),function(data){
				// Introduce los datos obtenidos en su sitio
				var elementos=Array();
				elementos=data.split("-");
				pasarID(indice,elementos[0]);
				$("#id_producto").val(elementos[0]);
				$("#idProducto_"+indice).val(elementos[0]);
				$("#producto_"+indice).val(elementos[1]);
				$("#stock_"+indice).val(elementos[2]);
				$("#undxcaja_"+indice).val(elementos[3]);
				if(document.getElementById("unidades_"+indice).value!="" && document.getElementById("producto_"+indice).value!=""){
					addField("");
				}
			});
		
		}
}
//Carga los datos del cliente
function cargarCliente(){
	
	var x = document.getElementById("cliente").value;
	
	$.get("albaranEntrega/backend.php?action=datosCliente&idCliente="+x,$("#formularioEntrega").serialize(),function(data){
		
		document.getElementById("DatosCliente").innerHTML = data;
		document.getElementById("DatosCliente").style.visibility = "visible";
		document.getElementById("fieldsetCliente").style.visibility = "visible";
			
	});
	
}
//Carga los datos del distribuidor
function cargarDistribuidor(){
	
	var x = document.getElementById("distribuidor").value;
	
	$.get("albaranRecogida/backend.php?action=datosDistribuidor&idDistribuidor="+x,$("#formularioRecogida").serialize(),function(data){		
		document.getElementById("DatosDistribuidor").innerHTML = data;
		document.getElementById("DatosDistribuidor").style.visibility="visible";
		document.getElementById("fieldsetDistribuidor").style.visibility="visible";				
	});
	
}
// Visualiza el el stock en la linea indicada
function pasarID(indice,id){
	
	var tipoAlbaran=$("#tipoAlbaran").val();
		
	if(tipoAlbaran=="Entrega"){			
		// Llama a la función "recogerStock" del formulario del abaran de entrega
		$.get("albaranEntrega/backend.php?action=recogerStock&idStock="+id,$("#formularioEntrega").serialize(),function(data){
			$("#stock_"+indice).val(data);
		});
		
	}else{
			// Llama a la función "recogerStock" del formulario del albaran de recogida
			$.get("albaranRecogida/backend.php?action=recogerStock&idStock="+id,$("#formularioRecogida").serialize(),function(data){
				$("#stock_"+indice).val(data);
			});
			
		}	 
}
// Introduce todos los datos en la linea del producto seleccionado
function actualizarLinea(indice,tope){
	
	if (document.getElementById("producto_"+indice).value != "" && document.getElementById("unidades_"+indice).value != ""){
		var id = document.getElementById("idProducto_"+indice).value;
				
		if($("#accion").val()=="modificar"){
			//guardarConIndice("modificarLinea",indice);
			switch($("#tipoAlbaran").val()){
				case "Entrega":
					//Llama a modificar linea de albaran entrega
					$.get("albaranEntrega/backend.php?action=modificarLinea&indice="+indice+"&idProducto_"+indice+"="+$("#idProducto_"+indice).val()+"&unidades_"+indice+"="+$("#unidades_"+indice).val(),$("#formularioEntrega").serialize(),function(data){
					
						switch(data){
					
							case "producto": //Muestra el error cuando el nombre del producto que se ha modificado no es valido
						
								document.getElementById('contenedor').innerHTML ="<font color='red'><b>Introduzca un producto v&aacute;lido</b></font>";
								setTimeout(function(){document.getElementById('contenedor').innerHTML =""},5000);
						
							break;
						
							case "unidades": //Muestra el error cuando no has introducido el un valor positivo en el campo de unidades
							
								document.getElementById('contenedor').innerHTML ="<font color='red'><b>Un producto no tiene especificado un n&uacute;mero positivo de unidades</b></font>";
								setTimeout(function(){document.getElementById('contenedor').innerHTML =""},5000);
							
							break;
						
							case "agotado": // Muestra el error cuando el numero introducido en unidades sobrepasa el numero que hay en stock
						
								document.getElementById('contenedor').innerHTML ="<font color='red'><b>Sobrepasa el limite de unidades</b></font>";
								setTimeout(function(){document.getElementById('contenedor').innerHTML =""},5000);
						
							break;
						
						}
						
					});
				break;
				
				case "Recogida":
					//llama al modificar de albaran de recogida
					$.get("albaranRecogida/backend.php?action=modificarLinea&indice="+indice+"&idProducto_"+indice+"="+$("#idProducto_"+indice).val()+"&unidades_"+indice+"="+$("#unidades_"+indice).val(),$("#formularioRecogida").serialize(),function(data){
						if(data=="producto"){//Muestra el error cuando el nombre del producto que has introducido no es valido
							
							document.getElementById('contenedor').innerHTML ="<font color='red'><b>Introduzca un producto v&aacute;lido</b></font>";
						setTimeout(function(){document.getElementById('contenedor').innerHTML =""},5000);
						}
						if(data=="unidades"){//Muestra el error cuando no has insertado ningun valor positivo en el campo unidades
							document.getElementById('contenedor').innerHTML ="<font color='red'><b>Un producto no tiene especificado un n&uacute;mero positivo de unidades</b></font>";
						setTimeout(function(){document.getElementById('contenedor').innerHTML =""},5000);
						}
					});
				break;
			}
		}
		else{
			//Guarda la linea
			guardarConIndice("insertarLinea",indice);
		}
		
		if(indice >= tope || tope==0){
			addField(tope);
			llenarPalets(indice, id);
			$(document).ready(function(){
				pasarID(indice, id);				
			});
		}
		
		$(document).ready(function(){
			pasarID(indice, id);
			if(document.getElementById("contenedor").innerHTML != ""){
				$("#palet_0").val("");
				$("#stock_0").val("");
				setTimeout(function(){document.getElementById("contenedor").innerHTML = ""},5000);
			}
		});		
	}
}
// Borra la linea indicada
function delRow(indice) {
	// Funcion que destruye el elemento actual una vez echo el click
	var mayor=0;
	var recorre=0;
	for(var i=0;i<numeroLineasInsercion();i++){
		recorre=parseInt(document.getElementById("tabla_lineas_formulario").getElementsByTagName("tr").item(i).getAttribute("id").replace("linea_insercion_",""));
		if(recorre>mayor){
			mayor=recorre;
		}
	}

	/*Sólo permitiremos borrar líneas mientras quede más de una y mientras no sea la última línea de inserción*/
	if(numeroLineasInsercion()>1 && ((parseInt(indice))!=mayor)){	
	
		var tipoAlbaran=$("#tipoAlbaran").val();
		
		if(tipoAlbaran=="Entrega"){		
			
			$.get("albaranEntrega/backend.php?action=borrarLinea&indice="+indice+"&idProducto_"+indice+"="+$("#idProducto_"+indice).val()+"&unidades_"+indice+"="+$("#unidades_"+indice).val(),$("#formularioEntrega").serialize(),function(data){
			});
			$("#linea_insercion_"+indice).remove();
			
		}else{
		
				$.get("albaranRecogida/backend.php?action=borrarLinea&indice="+indice+"&idProducto_"+indice+"="+$("#idProducto_"+indice).val()+"&unidades_"+indice+"="+$("#unidades_"+indice).val(),$("#formularioRecogida").serialize(),function(data){
				});
				$("#linea_insercion_"+indice).remove();

			}
	}
}
// Llena el campo EAN del producto indicado
function llenarEAN(indice,id){
	
	var tipoAlbaran=$("#tipoAlbaran").val();
		
	if(tipoAlbaran=="Entrega"){	

		$.get("albaranEntrega/backend.php?action=ean&idEan="+id,$("#formularioEntrega").serialize(),function(data){
			$("#ean_"+indice).val(data);
		});
		
	}else{
			$.get("albaranRecogida/backend.php?action=ean&idEan="+id,$("#formularioRecogida").serialize(),function(data){
				$("#ean_"+indice).val(data);
			});
		}
}
// Llena el campo de las unidades "Unidades x Palet"
function llenarUndxPalet(indice,id){
	
	var tipoAlbaran=$("#tipoAlbaran").val();
		
	if(tipoAlbaran=="Entrega"){	
	
		$.get("albaranEntrega/backend.php?action=undxpalet&iduxp="+id,$("#formularioEntrega").serialize(),function(data){
			$("#undxcaja_"+indice).val(data);
		});
		
	}else{
	
			$.get("albaranRecogida/backend.php?action=undxpalet&iduxp="+id,$("#formularioRecogida").serialize(),function(data){
				$("#undxcaja_"+indice).val(data);
			});
		
		}
}
// Funcion que calcula el numero de palet según las unidades demandadas
function llenarPalets(indice,id)
{
	var tipoAlbaran=$("#tipoAlbaran").val();
		
	if(tipoAlbaran=="Entrega"){	

		$.get("albaranEntrega/backend.php?action=palet&idPalet="+id,$("#formularioEntrega").serialize(),function(data){
				
			if (document.getElementById("unidades_"+indice).value != "")
			{
				var und = document.getElementById("unidades_"+indice).value;
				document.getElementById("palet_"+indice).value = Math.round((und/data)*100)/100;
			}
				 
		});
		
	}else{
	
			$.get("albaranRecogida/backend.php?action=palet&idPalet="+id,$("#formularioRecogida").serialize(),function(data){
				
				if (document.getElementById("unidades_"+indice).value != "")
				{
					var und = document.getElementById("unidades_"+indice).value;
					document.getElementById("palet_"+indice).value = Math.round((und/data)*100)/100;
				}
				 
			});
	
		}
}
//Modifica la fecha del Albaran
function modificarFechaAlbaran(){
	if($("#tipoAlbaran").val()=="Recogida"){
		$.get("albaranRecogida/backend.php?action=modificarFechaAlbaran&fecha="+$("#fecha").val()+"&expedicion="+$("#expedicion").val(),$("#formularioRecogida").serialize(),function(data){});
	}
	else{
		$.get("albaranEntrega/backend.php?action=modificarFechaAlbaran&fecha="+$("#fecha").val()+"&expedicion="+$("#expedicion").val(),$("#formularioEntrega").serialize(),function(data){});
	}
}
/*#######################################################################################################################################################*/
/*################################################### FIN DE OPERACIONES CON LINEAS DE ALBARÁN ##########################################################*/
/*#######################################################################################################################################################*/



//###################################################################################################################################
//###################################################### RECOGIDA ###################################################################


////Funcion que envia al backend de albaran de recogida los datos del producto del lote con el id proporcionado
function obtenerProductoLote(id){
	//Se envia el id del producto al backend para que haga la consulta y devuelva los datos del producto
	//Tambien se empiezan a mostrar las lineas de lote una vez introducido el producto
	$.get("albaranRecogida/backend.php?action=obtenerProductoLote&id="+id,$("#formularioRecogida").serialize(),function(data){
		document.getElementById("fieldLote").getElementsByTagName("legend").item(0).innerHTML="Lotes de "+data;
		//document.getElementById("tablaLote").style.height="0px";
		document.getElementById("cabeceraLineasLote").style.visibility="visible";
		document.getElementById("tablaLineasLote").style.visibility="visible";
		$("#cabeceraLineasLote").show("slow");
		$("#tablaLineasLote").show("slow");
	});
}
//Funcion que muestra y oculta los campos para introducir un nuevo lote en caso de querer insertar un nuevo lote
function mostrarLote(){
	
	var contador=document.getElementById("tablaLineasLote").getElementsByTagName("tr").length;
	//Si los campos estan ocultos se muestran
	if(document.getElementById("campoLote").style.display=="none"){
		//document.getElementById("campoLote").style.height="135px";
		//document.getElementById("fieldLote").style.height="135px";
		//document.getElementById("campoLote").style.visibility="visible";
		document.getElementById("fechaLote_0").disabled=true;
		$("#campoLote").show("slow");
	}//Si los campos estan visibles se ocultan además de reiniciarse dichos campos, es decir, los campos se ponen en blanco y se ocultan
	else{
		//Se borran una a una todas las lineas de lote salvo la primera linea, que sólo se reinicia
		for(var i=0;i<(contador);i++){
			if(i==0){
				document.getElementById("linea_lote_"+i).getElementsByTagName("input").item(0).disabled=false;
				document.getElementById("linea_lote_"+i).getElementsByTagName("input").item(0).value="";
				document.getElementById("linea_lote_"+i).getElementsByTagName("input").item(1).disabled=false;
				document.getElementById("linea_lote_"+i).getElementsByTagName("input").item(1).value="";
				document.getElementById("linea_lote_"+i).getElementsByTagName("input").item(1).disabled=true;
				document.getElementById("linea_lote_"+i).getElementsByTagName("input").item(3).disabled=false;
				document.getElementById("linea_lote_"+i).getElementsByTagName("input").item(3).value="";
				$("#fechaLote_0").datepicker("enable");
				document.getElementById("productoLote").disabled=false;
				$.get("albaranRecogida/backend.php?action=datepickerLote&prd=0",$("#formularioRecogida").serialize(),function(data){
					$("#dateLote").html(data);
				});
				continue;
			}
			$("#linea_lote_"+i).remove();
		}
		//Se reinicia la cabecera del fieldset de lote y se oculta
		document.getElementById("productoLote").value="";
		document.getElementById("fieldLote").getElementsByTagName("legend").item(0).innerHTML="Lotes producto";
		//document.getElementById("productoLoteOcultar").style.visibility="visible";
		//document.getElementById("cabeceraLineasLote").style.visibility="hidden";
		//document.getElementById("tablaLineasLote").style.visibility="hidden";
		//document.getElementById("campoLote").style.visibility="hidden";
		$("#campoLote").hide("slow");
		$("#tablaLineasLote").hide("slow");
		$("#cabeceraLineasLote").hide("slow");
		
	}
}

function delRowLoteModificacion(indice,subindice){

	// Funcion que destruye el elemento actual una vez echo el click	
	$.get("albaranRecogida/backend.php?action=borrarLineaLote&productoLoteBorrar="+$("#id_producto_lote_"+indice).val()+"&numero="+$("#nLote_"+indice+"_"+subindice).val()+"&unidadesBorrar="+$("#unidadesLote_"+indice+"_"+subindice).val()+"&expedicionAlbaran="+$("#expedicion").val(),$("#formularioRecogida").serialize(),function(data){
	});
	$("#linea_lote_modificacion_"+indice+"_"+subindice).remove();
	if(document.getElementById("tablaLineasLoteModificacion_"+indice).getElementsByTagName("tr").length==0){
		//$("#tablaLineasLoteModificacion_"+indice).remove();
		$("#campoLoteModificacion_"+indice).remove();
		
	}
	
}
//Funcion que muestra una nueva linea de lote en caso de querer insertar un nuevo lote
function addFieldLote(tope){
	//Se obtiene el indice mayor de las lineas de lote de insercion y se incrementa en uno para obtener el indice de la nueva linea de lote de insercion
	var antiguoID=0;
	var id;
	for(var i=0;i<(document.getElementById("tablaLineasLote").getElementsByTagName("tr").length);i++){
		id=parseInt(document.getElementById("tablaLineasLote").getElementsByTagName("tr").item(i).getAttribute("id").replace("linea_lote_",""));
		if(id>antiguoID){
			antiguoID=id;
		}
	}
	var newID=antiguoID+1;
	var newClone = $('#linea_lote_'+antiguoID).clone(true,true);
	newClone.attr("id",'linea_lote_'+newID);
	newClone.insertAfter($('#linea_lote_'+antiguoID));
	document.getElementById("linea_lote_"+newID).innerHTML='<td><center><input type="text" class="autocompletar" id="nLote_'+newID+'" name="nLote_'+newID+'" maxlength="18" onkeypress="return comprobar_solonumeros_exp(event);"></center></td><td><center><input type="text" class="autocompletar" id="fechaLote_'+newID+'" name="fechaLote_'+newID+'" disabled="disabled"><input type="hidden" id="fecha_lote_'+newID+'" name="fecha_lote_'+newID+'"></center></td><td><center><input type="text" id="unidadesLote_'+newID+'" name="unidadesLote_'+newID+'" class="autocompletar" style="width:70px;" onkeypress="return comprobar_solonumeros_2(event);" onchange="actualizarLineaLote('+newID+',0);"></center></td><td> <img id="deleteLote_'+newID+'" name="deleteLote_'+newID+'" src="./albaranEntrega/icon/icon-trash.png" style="width: 24px; height: 21px; border-top-width: 0px; margin-top: 0px;" onclick="delRowLote('+newID+');"> </td>';
	//Se desactivan los campos de la linea de lote de insercion anterior a la linea de lote de insercion que se va a añadir
	document.getElementById("linea_lote_"+antiguoID).getElementsByTagName("input").item(0).disabled=true;
	document.getElementById("linea_lote_"+antiguoID).getElementsByTagName("input").item(1).disabled=true;
	document.getElementById("linea_lote_"+antiguoID).getElementsByTagName("input").item(3).disabled=true;
	$("#fechaLote_"+antiguoID).datepicker("disable");
	//Se vuelve a llamar al datepicker para que se aplique en el nuevo campo de fecha de caducidad de la nueva linea de lote de insercion
	$.get("albaranRecogida/backend.php?action=datepickerLote&prd="+newID,$("#formularioRecogida").serialize(),function(data){
			$("#dateLote").html(data);
	});
}
//Funcion que inserta o modifica las lineas de lote en funcion de la accion
function actualizarLineaLote(indice,tope){
	
	if (document.getElementById("nLote_"+indice).value != "" && document.getElementById("fechaLote_"+indice).value != "" && document.getElementById("unidadesLote_"+indice).value != ""){
		var id_producto = document.getElementById("id_producto_lote").value;		
		//Se envian los datos de la linea de lote al backend de albaran de recogida para su insercion
		$.get("albaranRecogida/backend.php?action=insertarLote&indice="+indice+"&id_producto_lote="+id_producto+"&distribuidor="+$("#distribuidor").val(),$("#formularioRecogida").serialize(),function(data){
			switch(data){//Se muestra el correspondiente mensaje de error en caso de error
						case 'numeroLote':
							document.getElementById('errorLote').innerHTML ="<font color='red'><b>Introduzca un n&uacute;mero de lote v&aacute;lido</b></font>";
							setTimeout(function(){document.getElementById('errorLote').innerHTML ="";},5000);
						break;
						
						case 'numeroAcabadoLote':
							document.getElementById('errorLote').innerHTML ="<font color='red'><b>El n&uacute;mero de lote especificado ya existe</b></font>";
							setTimeout(function(){document.getElementById('errorLote').innerHTML ="";},5000);
						break;
								
						case 'fechaAlbaran':
							document.getElementById('errorLote').innerHTML ="<font color='red'><b>Introduzca una fecha v&aacute;lida para el albar&aacute;n</b></font>";
							setTimeout(function(){document.getElementById('errorLote').innerHTML ="";},5000);
						break;
											
						case 'fechaLote':
							document.getElementById('errorLote').innerHTML ="<font color='red'><b>Introduzca una fecha de caducidad v&aacute;lida para el lote</b></font>";
							setTimeout(function(){document.getElementById('errorLote').innerHTML ="";},5000);
						break;
						
						case 'distribuidorLote':
							document.getElementById('errorLote').innerHTML ="<font color='red'><b>Seleccione el distribuidor del lote</b></font>";
							setTimeout(function(){document.getElementById('errorLote').innerHTML ="";},5000);
						break;
						
						case 'productoLote':
							document.getElementById('errorLote').innerHTML ="<font color='red'><b>Introduzca un producto v&aacute;lido para el lote</b></font>";
							setTimeout(function(){document.getElementById('errorLote').innerHTML ="";},5000);
						break;
						
						case 'unidadesLote':											
							document.getElementById('errorLote').innerHTML ="<font color='red'><b>El producto del lote no tiene especificado un n&uacute;mero positivo de unidades</b></font>";		
							setTimeout(function(){document.getElementById('errorLote').innerHTML ="";},5000);			
						break;
						
						case 'agotadoLote':											
							document.getElementById('errorLote').innerHTML ="<font color='red'><b>La cantidad especificada sobrepasa el l&iacute;mite de existencias</b></font>";	
							setTimeout(function(){document.getElementById('errorLote').innerHTML ="";},5000);				
						break;
						
						case 'expedicion':
							document.getElementById('errorLote').innerHTML ="<font color='red'><b>Debe introducir un n&uacute;mero de expedici&oacute;n positivo y distinto de cero</b></font>";
							setTimeout(function(){document.getElementById('errorLote').innerHTML ="";},5000);
						break;
												
						case 'OK':
						break;
			}
		});
		
		//Se añade una nueva linea de lote después de insertar
		if(indice >= tope || tope==0){
			addFieldLote(tope);
		}
	}
}
//Funcion que modifica los lotes
function actualizarLineaLoteModificacion(indice,subindice){
	
	if (document.getElementById("nLote_"+indice+"_"+subindice).value != "" && document.getElementById("fechaLote_"+indice+"_"+subindice).value != "" && document.getElementById("unidadesLote_"+indice+"_"+subindice).value != ""){
		var id_producto = document.getElementById("id_producto_lote_"+indice).value;		
		//Llama a modificar lotes de albaran de recogida
		$.get("albaranRecogida/backend.php?action=modificarLote&indiceLoteModificacion="+indice+"&id_producto_lote_modificacion="+id_producto+"&nLoteModificacion="+$("#nLote_"+indice+"_"+subindice).val()+"&unidadesLoteModificacion="+$("#unidadesLote_"+indice+"_"+subindice).val()+"&expedicionLoteModificacion="+$("#expedicion").val(),$("#formularioRecogida").serialize(),function(data){
			switch(data){//Muestra el error correspondiente despendiendo del error que sea
						case 'numeroLote':
							document.getElementById('errorLote').innerHTML ="<font color='red'><b>Introduzca un n&uacute;mero de lote v&aacute;lido</b></font>";
							setTimeout(function(){document.getElementById('errorLote').innerHTML ="";},5000);
						break;
						
						case 'numeroAcabadoLote':
							document.getElementById('errorLote').innerHTML ="<font color='red'><b>El n&uacute;mero de lote especificado ya existe</b></font>";
							setTimeout(function(){document.getElementById('errorLote').innerHTML ="";},5000);
						break;
								
						case 'fechaAlbaran':
							document.getElementById('errorLote').innerHTML ="<font color='red'><b>Introduzca una fecha v&aacute;lida para el albar&aacute;n</b></font>";
							setTimeout(function(){document.getElementById('errorLote').innerHTML ="";},5000);
						break;
											
						case 'fechaLote':
							document.getElementById('errorLote').innerHTML ="<font color='red'><b>Introduzca una fecha de caducidad v&aacute;lida para el lote</b></font>";
							setTimeout(function(){document.getElementById('errorLote').innerHTML ="";},5000);
						break;
						
						case 'distribuidorLote':
							document.getElementById('errorLote').innerHTML ="<font color='red'><b>Seleccione el distribuidor del lote</b></font>";
							setTimeout(function(){document.getElementById('errorLote').innerHTML ="";},5000);
						break;
						
						case 'productoLote':
							document.getElementById('errorLote').innerHTML ="<font color='red'><b>Introduzca un producto v&aacute;lido para el lote</b></font>";
							setTimeout(function(){document.getElementById('errorLote').innerHTML ="";},5000);
						break;
						
						case 'unidadesLote':											
							document.getElementById('errorLote').innerHTML ="<font color='red'><b>El producto del lote no tiene especificado un n&uacute;mero positivo de unidades</b></font>";		
							setTimeout(function(){document.getElementById('errorLote').innerHTML ="";},5000);			
						break;
						
						case 'agotadoLote':											
							document.getElementById('errorLote').innerHTML ="<font color='red'><b>La cantidad especificada sobrepasa el l&iacute;mite de existencias</b></font>";	
							setTimeout(function(){document.getElementById('errorLote').innerHTML ="";},5000);				
						break;
						
						case 'expedicion':
							document.getElementById('errorLote').innerHTML ="<font color='red'><b>Debe introducir un n&uacute;mero de expedici&oacute;n positivo y distinto de cero</b></font>";
							setTimeout(function(){document.getElementById('errorLote').innerHTML ="";},5000);
						break;
												
						case 'OK':
						break;
			}
		});
	}
}
//Funcion que devuelve el numero de lineas de lote de insercion
function numeroLineasInsercionLote(){
	var tabla=document.getElementById("tablaLineasLote");
	var lineas=tabla.getElementsByTagName("tr");
	return lineas.length;
}
//Funcion que elimina una linea de lote con indice especificado
function delRowLote(indice){
	// Funcion que destruye el elemento actual una vez echo el click
	//Se obtiene el indice mayor de las lineas de lote de insercion
	var mayor=0;
	var recorre=0;
	for(var i=0;i<numeroLineasInsercionLote();i++){
		recorre=parseInt(document.getElementById("tablaLineasLote").getElementsByTagName("tr").item(i).getAttribute("id").replace("linea_lote_",""));
		if(recorre>mayor){
			mayor=recorre;
		}
	}

	/*Sólo permitiremos borrar líneas mientras quede más de una y mientras no sea la última línea de inserción*/
	if(numeroLineasInsercionLote()>1 && ((parseInt(indice))!=mayor)){	
		$.get("albaranRecogida/backend.php?action=borrarLineaLote&productoLote="+$("#id_producto_lote").val()+"&numero="+$("#nLote_"+indice).val()+"&unidades="+$("#unidadesLote_"+indice).val(),$("#formularioRecogida").serialize(),function(data){
		});
		$("#linea_lote_"+indice).remove();
	}
}

//###################################################### RECOGIDA ###################################################################
//###################################################################################################################################
//Funcion que muestra el jqGrid en el fcontenido.php
function print_grid(){
	var lastsel;
	$("#list").jqGrid({
		//url de donde se va a mostrar el grid
		url:'expediciones/backend.php?action=grid_users', 
		//tipo de datos en el que se van a mandar o recibir
		datatype: "json", 
		//Nombre de las columnas que se van a mostrar 
		colNames:['Expedicion','Tipo','Nombre','Fecha','Proveedor'], 
		//Especificaciones de cada columna
		colModel:[ 
			{name:'n_expedicion',index:'n_expedicion', width:40, align:"center",editable:false, search: true}, 
			{name:'tipo',index:'tipo', width:55, align:"center",editable:false, search: true,stype:'select', editoptions:{value:"%a:Todos;recogida:Recogida;entrega:Entrega"}},
			{name:'nombre',index:'nombre', width:55, align:"center",editable:false, search: true},
			{name:'fecha',index:'fecha', width:55, align:"center",editable:false, search: true},
			{name:'proveedor',index:'proveedor', width:55, align:"center",editable:false, search: true}
		], 
		//Cantidad de lineas que se van a mostrar por paginas
		rowNum:15, 
		//Altura del jqGrid
		height:280,
		//Anchura del jqGrid
		width:780,
		//Paginacion del jqGrid 
		pager: '#pager', 
		//Columna por la que se va a ordenar el jqGrid la primera vez que se muestre
		sortname: 'n_expedicion', 
		autowidth: false,
		//Muestra el numero de lineas que se han encontrado y desde cual hasta cual se esta mostrando
		viewrecords: true, 
		//Metodo de ordenacion del jqGrid
		sortorder: "asc", 
		//Titulo del jqGrid
		caption:"Gesti&oacute;n B&aacute;sica de Expediciones"
		//pgbuttons:false,

	}); 
	//Se descativan los botones que vienen por defecto del jqGrid
	$("#list").jqGrid('navGrid','#pager',{add:false,edit:false,del:false,search:false,refresh:false}); 
	//Se añaden los botones personalizados por nosotros
	$("#list").jqGrid('navButtonAdd','#pager',{
		caption: "Consultar    ",
		buttonicon :'ui-icon-print',
		onClickButton : function (){ 
			ConsultarExpedicion();
		} 
	}); 
	$("#list").jqGrid('navButtonAdd','#pager',{
		caption: "Modificar   ", 
		buttonicon :'ui-icon-pencil',
		onClickButton : function (){ 
			modificarExpedicion();
		} 
	}); 
	$("#list").jqGrid('navButtonAdd','#pager',{
		caption: "Borrar    ", 
		buttonicon :'ui-icon-trash',
		onClickButton : function (){ 
			borrarExpedicion();
			$("#list").trigger("reloadGrid");
		} 
	}); 
	//Muestra las barras de busqueda
	$("#list").jqGrid('filterToolbar', { searchOnEnter: true, enableClear: false });  
}
//Funcion que hace la llamada al modificar del abaran correspondiente si es de entrega o de recogida
function modificarExpedicion(){
	var id_expedicion = $("#list").jqGrid('getGridParam','selrow'); 	
	var linea = $("#list").jqGrid('getRowData',id_expedicion); 
	
	if( id_expedicion == null ){
		alert("Para modificar un registro debe seleccionarlo previamente."); 
	}else{
		if(linea.tipo=="Recogida"){
			$.get("albaranRecogida/backend.php?action=form&n_expedicion="+linea.n_expedicion+"&tipoAlbaran="+linea.tipo, function(data){
			$('#jqgrid_list').css('display','none');
			$('#formulario').html(data);
			$('#formulario').css('display','');
		});
		}else{
			$.get("albaranEntrega/backend.php?action=form&n_expedicion="+linea.n_expedicion+"&tipoAlbaran="+linea.tipo, function(data){
			$('#jqgrid_list').css('display','none');
			$('#formulario').html(data);
			$('#formulario').css('display','');
			});
			}
		}
	
	return false;
}
//Funcion que borra expedicion del jqGrid
function borrarExpedicion(){
		
	var id =$("#list").jqGrid('getGridParam','selrow');
	var tipo = $("#list").jqGrid('getRowData',id); 
	
	//Controla si esta seleccionado algun elemento de la lista
	if( tipo.n_expedicion == null ){
		alert("Para modificar un registro debe seleccionarlo previamente."); 
	}else{
			//Controla que confirma el borrado
			if(!confirm("¿Está seguro de que desea eliminar el registro seleccionado?"))
			exit(); 
		//Llama a la funcion de borrar que esta en backend.php de expediciones para realizar el borrado
		$.get("expediciones/backend.php?action=borrar&n_expedicionAlbaranBorrado="+tipo.n_expedicion+"&tipoAlbaranBorrado="+tipo.tipo, function(data){
			//Actualiza el jqGrid	
			$("#list").trigger("reloadGrid");
		});
			
		}
	return false;
}
//Funcion que llama al fichero de creacion del PDF 
function imprimirPDF(n_expedicion,tipo){

	document.location = "report/creacion.php?n_expedicion="+n_expedicion+"&tipo="+tipo;
	
}
//Funcion que llama al fichero de creacion del PDF con EAN
function imprimireanPDF(n_expedicion,tipo){

	document.location = "report/creacionean.php?n_expedicion="+n_expedicion+"&tipo="+tipo;
	
}

 //Funcion que muestra la consulta del albaran seleccionado en el jqGrid
 function ConsultarExpedicion(){
	var id =$("#list").jqGrid('getGridParam','selrow');
	var n_expedicion = $("#list").jqGrid('getRowData',id); 
	//Comprueba que el usuario haya seleccionado un elemento del jqGrid
	if( id == null ){
		alert("Para consultar un registro debe seleccionarlo previamente."); 
	}else{
		//Llama al formConsulta del backend.php y le pasa los parametros necesario para su consulta
		$.get("expediciones/backend?action=formConsulta&n_expedicion="+n_expedicion.n_expedicion+"&tipo="+n_expedicion.tipo, function(data){
		

			$('#jqgrid_list').css('display','none');
			$('#formulario').html(data);
			$('#formulario').css('display','');
		});
	}
	return false;
}



//Funcion que comprueba que la tecla pulsada solo sea un numero 
function comprobar_solonumeros(evt){

//asignamos el valor de la tecla a keynum
if(window.event){// IE
keynum = evt.keyCode;
}else{
keynum = evt.which;
}
//comprobamos si se encuentra en el rango
if(keynum>47 && keynum<58 || keynum == 8){
return true;
}else{
return false;
}
}		
//Funcion que comprueba que la tecla pulsada solo sea un numero con puntos
function comprobar_solonumeros_con_punto(evt){

	//asignamos el valor de la tecla a keynum
	if(window.event){// IE
		keynum = evt.keyCode;
	}
	else{
		keynum = evt.which;
	}
	//comprobamos si se encuentra en el rango
	if((keynum>47 && keynum<58) || keynum==8 || (keynum==0) || (keynum==13)|| keynum==44){

		return true;
	}
	else{
		return false;
	}
}
//Funcion que comprueba que la tecla pulsada solo sea un numero 
function comprobar_solonumeros_2(evt){

	//asignamos el valor de la tecla a keynum
	if(window.event){// IE
		keynum = evt.keyCode;
	}
	else{
		keynum = evt.which;
	}
	//comprobamos si se encuentra en el rango
	if((keynum>47 && keynum<58) || keynum==8 || keynum==46){
		return true;
	}
	else{
		return false;
	}
}
//Funcion que comprueba que la tecla pulsada solo sea un numero 
function comprobar_solonumeros_exp(evt){

	//asignamos el valor de la tecla a keynum
	if(window.event){// IE
		keynum = evt.keyCode;
	}
	else{
		keynum = evt.which;
	}
	//comprobamos si se encuentra en el rango
	if((keynum>47 && keynum<58) || keynum==8){
		return true;
	}
	else{
		return false;
	}
}
//Funcion volver atras que te retorna a la pagina anterior
function volver_atras()
{
	$('#jqgrid_list').css('display','');
	$('#formulario').html('');
	$('#formulario').css('display','none');
	$("#list").trigger("reloadGrid");
}
//Funcion que vuelve atras, oculta el formulario y muestra jgquid si la accion es modificar y si es insercion vuelve a la pagina principal
function volver_atras_2(accion){
	if(accion=="modificar"){
		$('#jqgrid_list').css('display','');
		$('#formulario').html('');
		$('#formulario').css('display','none');
		$("#list").trigger("reloadGrid");
	}
	else if(accion=="insertar"){
		window.location="http://www.synapse.es/transporte/intranet/fcontenido.php?modulo=inventario";
	}
}
//Funcion que comprueba que el albaran tiene insertada lineas y en caso contrario te preguntara si desea eliminar el albaran
function botonAceptar(accion){
	$.get("albaranRecogida/backend.php?action=comprobarGuardar&expedicionComprobarGuardar="+$("#expedicion").val(),$("#formularioRecogida").serialize(),function(data){
		switch(data){
			case 'OK':
				volver_atras_2(accion);
			break;
			
			case 'borrar':
				if(confirm("El albarán está vacío y será eliminado")){
					$.get("albaranRecogida/backend.php?action=borrarGuardar&expedicionBorrarGuardar="+$("#expedicion").val(),$("#formularioRecogida").serialize(),function(data){
						if(data=="OK"){
							volver_atras_2(accion);
						}
					});					
				}
				else{
					volver_atras_2(accion);
				}
			break;
		}
	});
}
